0
배열의 크기를 재 할당하려하지만 변경되지 않습니다. 나는이 문제를 분리 할 수 있습니다 : 내가 첫 번째 행을 malloc을 한 후배열 크기 재 할당
Coordinate *closeCoordinatesArray = malloc(sizeof(Coordinate) * 0);
Coordinate nextCoordinate = coordinatesMainArray[nextCoordinateIndex];
for (int p = 0; p < 4; p++) {
switch (p) {
case 0:
if (((nextCoordinate.x - 1) >= 0) && ((nextCoordinate.y - 1) >= 0)) {
int sizeOfArray = sizeof(*closeCoordinatesArray);
int sizeOfFirstObject = sizeof(closeCoordinatesArray[0]);
int closeCoordinatesArrayLength = (sizeOfArray/sizeOfFirstObject);
closeCoordinatesArray = realloc(closeCoordinatesArray,sizeof(Coordinate) * (closeCoordinatesArrayLength + 1));
sizeOfArray = sizeof(*closeCoordinatesArray);
sizeOfFirstObject = sizeof(closeCoordinatesArray[0]);
closeCoordinatesArrayLength = (sizeOfArray/sizeOfFirstObject);
는, 그것의 길이는 것을 보여준다 1. 나는 그것이 있어야 가정 것이다 0 (내가 그것을 0되고 싶어). 경우 0에서 realloc과 그 후
나는 길이를 확인하고 내가 뭘 잘못 여전히 1.입니까?
또한 sizeof (* closeCoordinatesArray)와 sizeof (closeCoordinatesArray [0])는 둘 다 같은 것을합니다. 단일 배열 요소의 크기를 지정하십시오. –