Chào mọi người,
Em viết 1 chương trình C thuần túy. Đọc dữ liệu từ file .txt. Trong file (.txt) này là những con số Hexa 8-bit. Vd: 1A 2E 8F…
Mỗi lần đọc 1 số thì em thêm vào phần tử đuổi của mảng bằng lệnh realloc để resize lại kịch thước của mảng. Em dùng Visual Studio. Khi sử dụng trình Debug thì không báo lỗi, nhưng khi dùng Release thì bị lỗi nó ra 1 cái bảng Warming rồi bắt break, không chạy được. Em nghĩ là do truy cập vào vùng nhờ chưa được cấp phát. Mọi người xem giúp em với.
int main(int argc, char *argv[]) {
FILE *FileIn;
int i, temp;
int *A, nA = 0;
A = (int *)realloc(NULL, sizeof(int));
FileIn = fopen("test.txt", "r");
fscanf(FileIn, "%x", &temp);
A[0] = temp;
nA++;
for(i = 0; i < 16; ++i){
fscanf(FileIn, "%x", &temp);
addValue(A, &nA, temp);
}
for (i = 0; i < 16; ++i) {
printf("A[%d] = %x\n", i, A[i]);
}
free(A);
system("pause");
return 0;
}
void addValue(int *A, int *n, int Data)
{
A = (int *)realloc(A, (*n+1)*sizeof(int *));
A[*n] = Data;
(*n)++;
}