c struct指针数组分配sigsegv
c struct pointer array allocate sigsegv
我是 c 的新手,遇到以下问题:
执行这部分代码后
TypeDefStruct tdss[10];
for(...) {
TypeDefStruct *tds = (TypeDefStruct*)malloc(sizeof(TypeDefStruct));
strcpy(&tds->data, charPointerArray[index]) // works (not original code)
memcpy((void*) &tdss[index], (void*) &tds, sizeof(TypeDefStruct)); // new
free(tds); // new
}
此处出现错误
TypeDefStruct *tds = &tdss[0]; // worked before
printf("\twith input: \"%s\"\n", tds->data); // worked before
TypeDefStruct:
typedef struct TypeDefStruct{
char* data;
} TypeDefStruct;
sigsagv 错误有时也会出现(不知道在哪里,可能根本不在这里...)
我想做什么
我正在尝试将此结构复制到数组中并正确管理我的内存。
请不要介意询问更多信息!
strcpy(&tds->data, charPointerArray[index]) // works (not original code)
data
是一个未初始化的对象,需要用malloc
分配一个数组。
另外 &tds->data
参数是错误的,你需要使用 tds->data
.
就我而言,这并没有解决我所有的错误。也不是 sigsegv。
但是
中存在语法错误
memcpy((void*) &tdss[index], (void*) &tds, sizeof(TypeDefStruct));
!
因为 tds
是类型定义的结构,我们不需要 &
。至少我是这么认为的...
我是 c 的新手,遇到以下问题:
执行这部分代码后
TypeDefStruct tdss[10];
for(...) {
TypeDefStruct *tds = (TypeDefStruct*)malloc(sizeof(TypeDefStruct));
strcpy(&tds->data, charPointerArray[index]) // works (not original code)
memcpy((void*) &tdss[index], (void*) &tds, sizeof(TypeDefStruct)); // new
free(tds); // new
}
此处出现错误
TypeDefStruct *tds = &tdss[0]; // worked before
printf("\twith input: \"%s\"\n", tds->data); // worked before
TypeDefStruct:
typedef struct TypeDefStruct{
char* data;
} TypeDefStruct;
sigsagv 错误有时也会出现(不知道在哪里,可能根本不在这里...)
我想做什么
我正在尝试将此结构复制到数组中并正确管理我的内存。
请不要介意询问更多信息!
strcpy(&tds->data, charPointerArray[index]) // works (not original code)
data
是一个未初始化的对象,需要用malloc
分配一个数组。
另外 &tds->data
参数是错误的,你需要使用 tds->data
.
就我而言,这并没有解决我所有的错误。也不是 sigsegv。
但是
中存在语法错误memcpy((void*) &tdss[index], (void*) &tds, sizeof(TypeDefStruct));
!
因为 tds
是类型定义的结构,我们不需要 &
。至少我是这么认为的...