Tôi đang cố gắng để malloc và miễn phí một mảng nhỏ/bảng của chuỗi chữ cái duy nhất. Tôi biết rằng điều này có thể được thực hiện trong một mảng, nhưng tôi muốn thử và làm điều này với một malloc và miễn phí.Làm thế nào để malloc char ** bảng?
Tôi có này ngay bây giờ:
char **letters = (char**) malloc(5 * sizeof(char*));
int i =0;
for(i=0; i < NUMLETTERS ; ++i)
{
letters[i] = (char*) malloc(2*sizeof(char)); //2 is for the letter and null terminator
}
letters[0] = "a";
letters[1] = "b";
letters[2] = "c";
letters[3] = "d";
letters[4] = "e";
//Do stuff here
int i =0;
for(i=0; i < 5; ++i)
{
free(letters[i]);
}
free(letters);
Đoạn mã trên biên dịch tốt và mã của tôi ở giữa cũng làm việc và chạy tốt, nhưng khi chạy nó được một lỗi trong các phần miễn phí. Ngoài ra, sau khi sử dụng valgrind..it nói rằng miễn phí (chữ cái [i]); không hợp lệ.
Bất kỳ trợ giúp nào?
Ah! Tôi nên làm một cái gì đó như: strcpy (chữ cái [0], "a"); Đúng? – Flipper
Chính xác, điều đó sẽ hiệu quả. – Mysticial