打印出位于动态内存中的数组元素

Nu *_*Mik 1 c arrays malloc dynamic

XXX ----是的,这是一个家庭作业的问题,但是我被卡住了.为什么不打印出数组的元素?请帮帮--- XXX

好的,我们得到了打印输出部分.非常感谢.现在问题是空格分隔符放入数组之前唯一的第一个字符.我需要将所有单词或字符设置到数组中.

int main(int argc, char** argv) {

    int size = 0;
    char **array = malloc(0); //malloc for dynamic memory since the input size is unknown
    static const char filename[] = "input.txt";
    FILE *file = fopen(filename, "r");
    if (file != NULL) {
        char line [ 128 ]; 

        char delims[] = " ";
        char *result = NULL;
        while (fgets(line, sizeof line, file) != NULL)  {
            result = strtok(line, delims); //separate by space
            size++;
            array = realloc(array, size * sizeof (char*)); //declare array with unknown size
            array[size - 1] = result;

        }
        fclose(file);
    } else {
        perror(filename);
    }
    return 0;
    printf(array); //print array???
    return (EXIT_SUCCESS);
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*art 6

这是C.您不能只是调用printf()并期望它为您完成工作.您需要使用for()或while()循环遍历数组并打印出每个元素.

假设它是一个字符串数组:

int i;
for (i=0; i<size; i++)
    printf("array[%d] = %s\n", i, array[i]);
Run Code Online (Sandbox Code Playgroud)