Модератор: Модераторы разделов
GenchiK
Сообщения: 27
Сообщение
GenchiK » 25.12.2010 17:41
Здравствуйте! Ребята пытаюсь разобраться с malloc, программирую, точнее учусь на чистом Си.Написал следующий код, и хочу спросить правильно ли я выделил память?
Код: Выделить всё
#include <stdio.h>
#include <stdlib.h>
int main ()
{
int *memA, *fp, i, n;
printf("Enter size of array: ");
scanf("%d", &n);
memA = (int*)malloc(n*sizeof(int));
if( !memA ) printf("\nMemory error!");
fp = fopen("test.txt", "a");
if( !fp ) {
printf("\nError.");
exit();
}
for( i=0; i<n; i++ ) {
memA[i] = i*i;
printf("memA[%d]> %d\n", i, memA[i]);
if( !fprintf(fp, "A[%d]>%d\n", i, memA[i]) ) {
printf("\nEror: error writing.");
};
}
fclose(fp);
free(memA);
return 0;
}
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Сообщение
drBatty » 25.12.2010 18:02
да вроде норм...
только fprintf() выдаёт меньше нуля при ошибке.
GenchiK
Сообщения: 27
Сообщение
GenchiK » 25.12.2010 18:03
drBatty писал(а): ↑ 25.12.2010 18:02
да вроде норм...
только fprintf() выдаёт меньше нуля при ошибке.
А как вывести на экран размер выделенной памяти?
eddy
Сообщения: 3321
Статус: Красный глаз тролля
ОС: ArchLinux
Сообщение
eddy » 25.12.2010 18:05
GenchiK писал(а): ↑ 25.12.2010 18:03
А как вывести на экран размер выделенной памяти?
printf("%d\n", n);
RTFM
-------
KOI8-R - патриотичная кодировка
GenchiK
Сообщения: 27
Сообщение
GenchiK » 25.12.2010 18:08
eddy писал(а): ↑ 25.12.2010 18:05
GenchiK писал(а): ↑ 25.12.2010 18:03
А как вывести на экран размер выделенной памяти?
printf("%d\n", n);
По-моему не так... оно просто возьмёт значение которое я ввёл в n.Или я чего-то не понимаю?
Может правильнее вот так?
Ясно... не буду надоедать, всем спасибо за помощь!)
eddy
Сообщения: 3321
Статус: Красный глаз тролля
ОС: ArchLinux
Сообщение
eddy » 25.12.2010 18:37
GenchiK писал(а): ↑ 25.12.2010 18:08
Может правильнее вот так?
Точно.
RTFM
-------
KOI8-R - патриотичная кодировка