程序應根據輸入創建字符串。我們希望將這些字符串添加到列表中,該列表作爲指針傳遞給函數(指向其他char *指針)。 的代碼如下所示:將char []添加到char **(字符串到字符串列表)
void main(void) {
//set angles alpha (small) & beta (large)
char ** configurations = calloc(0, sizeof(char*));
int multiplicity = 0;
createConfigString(4, 4, 0, configurations, 0, &multiplicity);
}
void createConfigString(int a, int b, int c, char ** configurations, int start, int * multiplicity) {
int x, i;
int strSize = 2 * (a + b + c);
for(x = a; x >= (a + (a % 2))/2; x--) {
//new entry to configurations if starting a new line
if(start == 0) {
configurations = realloc(configurations, (*multiplicity + 1) * sizeof(char *));
configurations[*multiplicity] = calloc(strSize, sizeof(char));
}
for(i = 0; i < x; i++) {
configurations[*multiplicity][start] = "a,";
}
if(b == 2) {
*multiplicity++;
configurations[*multiplicity][start + 2 * x] = "b,b\n";
start = 0;
continue;
}
configurations[*multiplicity][start + 2 * x] = "b,b,";
createConfigString(a - x, b - 2, c, configurations, start + 2 * x + 4, multiplicity);
}
}
,但在編譯它告訴我們,它試圖投指針轉換成int上線
configurations[*multiplicity][start] = "a,";
configurations[*multiplicity][start + 2 * x] = "b,b\n";
configurations[*multiplicity][start + 2 * x] = "b,b,";
當我們寫
configurations[*multiplicity][start] = (int) "a,";
等。沒有任何警告編譯
我們做錯了什麼?謝謝
我真的是C noob,所以這個解釋真的很有幫助。謝謝! –