C 动态分配字符串数组的问题
我正在尝试动态分配大小为C 动态分配字符串数组的问题,c,arrays,dynamic-allocation,C,Arrays,Dynamic Allocation,我正在尝试动态分配大小为numberofrags的数组frags2,并复制原始数组的内容。我尝试了许多方法和搜索,但不明白这里出了什么问题sizeof返回0,而不是我认为的malloc'd 任何帮助都将不胜感激 int main(int argc, const char* argv[]) { char* frags[MAX_FRAG_COUNT]; FILE* fp = fopen(argv[1], "r"); int numberOfFrags = Read
numberofrags
的数组frags2
,并复制原始数组的内容。我尝试了许多方法和搜索,但不明白这里出了什么问题<新数组上的code>sizeof返回0
,而不是我认为的malloc'd
任何帮助都将不胜感激
int main(int argc, const char* argv[]) {
char* frags[MAX_FRAG_COUNT];
FILE* fp = fopen(argv[1], "r");
int numberOfFrags = ReadAllFragments(fp, frags, MAX_FRAG_COUNT);
fclose(fp);
char** frags2 = (char**)malloc(numberOfFrags * sizeof(char*));
for (int i = 0; i < numberOfFrags; i++) {
frags2[i] = frags[i];
}
qsort(frags2, sizeof(frags2) / sizeof(char *), sizeof(char*), cstring_cmp);
int main(int argc,const char*argv[]{
字符*碎片[最大碎片数];
文件*fp=fopen(argv[1],“r”);
int numberofrags=ReadAllFragments(fp、frags、MAX\u FRAG\u COUNT);
fclose(fp);
char**frags2=(char**)malloc(numberOfFrags*sizeof(char*);
for(int i=0;i
新数组上的Sizeof返回0,而不是我认为应该返回的值
它不是数组,而是指针。在此上下文中,运算符sizeof
生成指针的大小,而不是您分配的数量
所以,你可以试试看,而不是那种sizeof
的东西
qsort(frags2, numberOfFrags, sizeof(char*), cstring_cmp);
新数组上的Sizeof返回0,而不是我认为应该返回的值
它不是数组,而是指针。在此上下文中,运算符sizeof
生成指针的大小,而不是您分配的数量
所以,你可以试试看,而不是那种sizeof
的东西
qsort(frags2, numberOfFrags, sizeof(char*), cstring_cmp);
非常感谢,这很有效。但我不明白的是原始数组frags有什么不同。调用sizeof(frags)返回80000(最大FRAG计数为20000)。@JasonBlock:原始数组。
frags2
不是数组,它是一个指针,您可以向其分配地址。另一种(误导性)说法是“sizeof
在编译时工作”。非常感谢,这很有效。但我不明白的是原始数组frags有什么不同。调用sizeof(frags)返回80000(最大FRAG计数为20000)。@JasonBlock:原始数组。frags2
不是数组,它是一个指针,您可以向其分配地址。另一个(误导性)这种说法是“sizeof
在编译时工作”