Tôi đang viết một chương trình C nhỏ để làm một số crunching số, và nó cần phải vượt qua xung quanh mảng giữa các chức năng. Các chức năng nên chấp nhận và trả về con trỏ, phải không?Có phải con trỏ và mảng nào khác trong C?
Ví dụ, điều này (tôi biết nó có thể không phải là điều hiệu quả nhất):
int* reverse(int* l, int len) {
int* reversed = malloc(sizeof(*reversed)*len);
int i, j;
for (i = 0, j = len-1; i < len; i++, j--) {
reversed[j] = l[i];
}
return reversed;
}
Am Tôi sử dụng con trỏ phải không?
dụ vẻ của bạn khỏe. Chủ đề rộng hơn về sự khác biệt giữa mảng và con trỏ đã được giải quyết ở đây trước đây, chẳng hạn như tại http://stackoverflow.com/questions/660752/pointer-vs-array-in-c-non-trivial-difference. –
(Điều này sẽ không đủ điều kiện như một câu trả lời) Các đại số mảng và con trỏ chỉ khác nhau trong sizeof (array_name) trả về số lượng các phần tử array_name, không phải là kích thước của mảng theo byte. – jpinto3912