這裏是我的代碼片斷來創建包含char數組的2D數組。如果有人能夠找出可能的原因,那將是非常好的。我曾嘗試使用malloc()
和calloc()
分配內存到二維陣列,但沒有正面的跡象。2D char數組的malloc函數的分割錯誤
代碼段:
char** attrNames = (char **)malloc(3*sizeof(char*))
for (m = 0; m < 3; m++) {
attrNames[m] = (char *)malloc(2 * sizeof(char*));
strcpy(schema->attrNames[m], temp_buff2[m]);
}
我想分配內存,然後在一個循環持續,並再次分配內存和一個名爲temp_buff2
變量中的數據複製(具有字符數據)到字符數組。
沒錯。 '(char *)malloc(2 * sizeof(char *))'爲兩個指針分配空間,而不是它們指向的任何內容。 –
你也可以這樣分配:'char ** attrNames = malloc(3 * sizeof * attrNames);'。在分配的指針中使用'sizeof'有助於防止意外的sizeof(type)'不匹配。同樣''attrNames [m] = malloc(2 * sizeof ** attrNames);'(調整包括'strlen'以得到正確的計數如上) –
我不知道爲什麼,但他們都沒有工作 – Brinda