在C語(yǔ)言中,數(shù)組越界通常是由于訪問了超出數(shù)組范圍的內(nèi)存地址導(dǎo)致的。為了避免數(shù)組越界,可以采取以下措施:
int arr[5];
for (int i = 0; i < 5; i++) {
printf("%d\n", arr[i]);
}
<
而不是<=
來限制循環(huán)次數(shù)。for (int i = 0; i < 5; i++) {
printf("%d\n", arr[i]);
}
int *arr = (int *)malloc(5 * sizeof(int));
if (arr != NULL) {
for (int i = 0; i < 5; i++) {
printf("%d\n", arr[i]);
}
free(arr);
}
void printArray(int arr[], int size) {
for (int i = 0; i < size; i++) {
printf("%d\n", arr[i]);
}
}
int main() {
int arr[5] = {1, 2, 3, 4, 5};
printArray(arr, 5);
return 0;
}
#include <assert.h>
void printArray(int arr[], int size) {
for (int i = 0; i < size; i++) {
assert(i < size && "Array index out of bounds");
printf("%d\n", arr[i]);
}
}
int main() {
int arr[5] = {1, 2, 3, 4, 5};
printArray(arr, 5);
return 0;
}
通過遵循這些建議,可以有效地避免C語(yǔ)言中的數(shù)組越界問題。