我試圖動態分配大小爲numberOfFrags
的數組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 = 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);
參見[如何找到的sizeof(一個指針指向數組)(http://stackoverflow.com/questions/492384/how -to-find-the-sizeofa-pointer-pointing-an-array) – 2012-07-09 09:27:51