Функция sizeof вызванная в другой функции выдает неправильное значение - C (СИ)
Формулировка задачи:
Не могу понять, почему функция sizeof вызванная в другой функции выдает неправильное значение.
#include<iostream.h> #include<iomanip.h> //ïðîòîòèï ГґГіГ*êöèè êîïèðîâГ*Г*ГЁГї Г¬Г*Г±Г±ГЁГўГ* programCode[] Гў Г¬Г*Г±Г±ГЁГў memory[]. void loadProgramToMemory(short programCode[], short memory[]); main() { short memory[10] = {0}; short programCode[] = {1003, 1103, 4300}; //ГІГіГІ ГґГіГ*êöèÿ sizeof Г°Г*áîòГ*ГҐГІ ГЇГ°Г*âèëüГ*Г® cout << "Size of programCode[] in main(), B: " << sizeof programCode << endl << endl; loadProgramToMemory(programCode, memory); //âûâîä Г*Г* ГЅГЄГ°Г*Г* ñîäåðæèìîãî Г¬Г*Г±Г±ГЁГўГ* memory[] cout << "MEMORY:\n"; for (int i = 0; i < 10; i++) cout << setw(6) << memory[i]; cout << endl; return 0; } //ГґГіГ*êöèÿ êîïèðîâГ*Г*ГЁГї Г¬Г*Г±Г±ГЁГўГ* programCode[] Гў Г¬Г*Г±Г±ГЁГў memory[]. void loadProgramToMemory(short programCode[], short memory[]) { cout << setw(6) << programCode[0] << setw(6) << programCode[1] << setw(6) << programCode[2] << endl << endl; //ñîáñòâåГ*Г*Г® Г*ГҐГ*îðìГ*ëüГ*îå ïðîÿâëåГ*ГЁГҐ Гґ-ГЁГЁ sizeof cout << "Size of programCode[] in other function, B: " << sizeof programCode << endl << endl; // îïðåäåëåГ*ГЁГҐ Г°Г*çìåðГ* Г¬Г*Г±Г±ГЁГўГ* programCode[] int programSize = sizeof programCode / sizeof (short); for (int i = 0; i < programSize; i++) memory[i] = programCode[i]; }
Size of programCode[] in main(), B: 6
1003 1103 4300
Size of programCode[] in other function, B: 4
MEMORY:
1003 1103 0 0 0 0 0 0 0 0
Press any key to continue
Решение задачи: «Функция sizeof вызванная в другой функции выдает неправильное значение»
textual
Листинг программы
sizeof programCode << endl << endl;//!может там была опечатка!? int programSize = sizeof programCode / sizeof (short);//или здесь
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д