-4
我試過輸入「aaaaaaa」和「bbbb」不受歡迎的輸出。我的打印功能輸出如「aaabb」。看起來我在這裏的記憶管理不好,但我找不到這個地方。請幫忙。從我的函數,使用malloc
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void function(char *array[], int size);
void function2(char *array[], int size);
int main()
{
int size = 0;
char *array[] = {0};
function(array, 0);
size++;
function(array, 1);
size++;
function2(array,2);
return 0;
}
void function(char *array[], int size)
{
char word[20] = "0";
scanf("%s", word);
int len = strlen(word) + 1;
array[size] = (char *)malloc(sizeof(len));
strlcpy(array[size], word, sizeof(len));
}
void function2(char *array[], int size)
{
for(int x = 0; x < size; x ++)
{
printf("%s", *array);
(array)++;
}
}
〜
你永遠不會爲變量'array'分配任何空間。 – John3136
@ John3136那麼'char * array [] = {0};'是什麼?問題不同,請參閱發佈的答案。 – 2013-07-12 12:53:35
可能的重複:http://stackoverflow.com/q/17606293或者標題的確切副本更改爲誤導。還有一個:http://stackoverflow.com/questions/17606914/how-to-pass-an-array-of-pointer-to-pointer-to-a-function-in-c ....怎麼能相同的代碼從不同的傢伙發佈? – 0decimal0