170 похожих чатов

Ребята привет - помогите понять что я тут делаю не

так? void fileWrite(){
int* array = NULL;
int* pArray;

array = malloc(sizeof(int) * 2 );
pArray = &array;
*pArray = 55;
*(pArray+sizeof(int)) = 66;
printf(" %d, %d ", array[0], array[1]);
getchar();
}

21 ответов

12 просмотров

*(pArray + sizeof(int) 1) = 66;

учебник, по языку , С

в общем array[0] = 55; array[1] = 66; с точность до того, что array[x] это *(array+x)

SET-TES Автор вопроса
Denis P
учебник, по языку , С

Вот я его и читаю

*(pArray + sizeof (int)) = 66; //вихід за межі масиву *(pArray + 1) = 66; //виписування значення в array[1]

SET TES
Вот я его и читаю

и там это написано?

SET-TES Автор вопроса
SET TES
ну не так

этот код написано как пример того как писать не надо

SET-TES Автор вопроса
SET TES
а как в тогда в array[0] записать 55

Ох, тут вам потрібно почитати про масиви й вказівники

Також у вас є проблема в цій строчці коду: pArray = &array; Якщо ви пишите код на чистому С, а не С++

SET TES
я пишу на си

Ось, тому вам потрібно ще раз перечитати главу по вказівникам та спробувати спочатку написати програму з використанням звичайного масиву, а не динамічного

Объясните, что здесь изменилось #include <stdlib.h> #include <stdio.h> void fileWrite(){ int* array = NULL; array = malloc(sizeof(int) * 2 ); if (array == NULL) return; int* pArray = array; *pArray = 55; ++pArray; *pArray = 66; printf(" %d, %d ", array[0], array[1]); free(array); pArray = NULL; } int main() { fileWrite(); return 0; }

SET-TES Автор вопроса
Aliaksandr Onishchuk
Объясните, что здесь изменилось #include <stdlib.h...

тут я вижу что мы инициализировали pArray после проверки

SET-TES Автор вопроса
Aliaksandr Onishchuk
Хорошо

*pArray = 55 и потом делаем инкремент

SET TES
*pArray = 55 и потом делаем инкремент

Хорошо Почему не *(pArray+sizeof(int)) = 66; а ++pArray; *pArray = 66;

SET-TES Автор вопроса
Aliaksandr Onishchuk
Хорошо Почему не *(pArray+sizeof(int)) = 66; а ++...

то есть получается я сначала увеличивал адрес pArray на 4-ре байта и в тот мусор присваивал 66

SET TES
то есть получается я сначала увеличивал адрес pArr...

ещё раз, может пойти почитать главу учебника про указатели и их арифметику?

SET-TES Автор вопроса

Похожие вопросы

Обсуждают сегодня

type TObj = object procedure Init; virtual; end; TObj1 = object(TObj) procedure Init; override; end; procedure TObj1.Init; begin inherited; end; procedur...
Alexander 👋
29
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
45
А чем вам питонисты не угодили?😂
.
79
Можно ли загрузить скрипт py в бота чтобы он работал по нему? как это сделать?
huskadam #RCC Фанат? @hitlerpvp
13
А дин типизация это хорошо или плохо?
Alexey
12
Исходники плюс документация? Вы гоните)) демок хватит всем
zamtmn
11
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Hello. Could you please help me with finding all coordinates within a radius using a spatial index, given that I have a table with coordinates? SET @lng = 37.57925; SET @lat ...
Rinchin G
7
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
76
а что есть "статистика" ? просто подсчет фактов обращения и времен выполнения ?
Сергей
9
Карта сайта