我有下面的代码:`读一个动态数组从一个文件功能
#include <stdio.h>
#include <stdlib.h>
void load_from_file(int A[], int *n);
int main()
{
int *A;
A = (int*)malloc(0);
int count = 0;
int i;
load_from_file(A, &count);
for(i = 0; i < count; i++)
{
printf("A[%d]=%d ", i, A[i]);
printf("\n");
printf("&A[%d]=%p \n\n", i, &A[i]);
}
return 0;
}
void load_from_file(int A[], int *n)
{
FILE* fp;
int temp, i;
fp = fopen("data.txt", "r");
if (fp == NULL)
{
printf("error!!");
exit (1);
}
fscanf(fp, "%d", &temp);
*n = temp;
A = (int*) realloc(A, temp * sizeof(int));
if (*A == NULL)
{
printf("error realloc!!");
exit(1);
}
for(i = 0; i < temp; i++)
{
fscanf(fp, "%d", &A[i]);
}
for(i = 0; i < temp; i++)
{
printf("A[%d]=%d ", i, A[i]);
printf("\n");
printf("&A[%d]=%p \n\n", i, &A[i]);
}
fclose(fp);
}
我想读取文本文件到一个数组。 文件的第一行有数组元素的个数,第二行是数字元素。 我们通过realloc创建数组。 但是出了点问题..... 我有一些补丁,打印数组元素的地址。
但可惜的是,他们是不同的(不是所有的时间)的函数中,函数外,虽然数组通过引用传递(我想...)
请告诉我哪里是错误,我该如何解决这个问题。
在此先感谢...
迪米特里
你能给我一点data.txt文件,几个样本? – Claudiordgz
您正在向函数传递一个指针,但您需要将指针传递给该函数的指针,以便该函数可以修改调用代码中的值('main()'),或者从函数返回指针。 –
for examle:第一行:3(表示3个元素),即n = 3,创建一个包含3个元素的数组。第二行:2 3 4.我们应该有A [0] = 2,A [1] = 3,A [2] = 4。这发生在函数内部,但功能外有完全不同的值和不同的地址... – user3434833