Модератор:  Модераторы разделов 
	
	
			
	
			
		
	
		
		
		
			
				
																			
								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 
			
			
			
			
			да вроде норм...
			
			
									
						
										
			
			 
			
		 
				
		
		 
	 
		
		
		
		
			
				
																			
								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 - патриотичная кодировка