2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 динамическое выделение памяти в си
Сообщение14.03.2011, 21:51 


22/12/10
15
Код:
#include<stdio.h>
#include<locale.h>
#include<malloc.h>
#include<stdlib.h>
#define n 10

int main()
{
float a[n];
int i;
setlocale(LC_ALL,"Russian");
a[i] = (float *)malloc(n*sizeof(float));
printf("введите элементы массива");
for(i=0;i<n;i++)scanf("%f",&a[i]);
printf("массив");
for(i=0;i<n;i++)printf("a[%d]=%f \t",i,a[i]);
return 0;
}


при компиляции выдает: error c2440: '=' : cannot convert from 'float*' to 'float'
подскажите,плиз,в чем ошибка..

 Профиль  
                  
 
 Re: динамическое выделение памяти в си
Сообщение14.03.2011, 22:19 
Модератор
Аватара пользователя


16/02/11
3788
Бурашево
Код:
#include<stdio.h>
#include<locale.h>
#include<malloc.h>
#include<stdlib.h>
#define n 10

int main()
{
setlocale(LC_ALL,"Russian");
float*a = (float *)malloc(n*sizeof(float));
printf("введите элементы массива");
for(i=0;i<n;i++)scanf("%f",&a[i]);
printf("массив");
for(i=0;i<n;i++)printf("a[%d]=%f \t",i,a[i]);
free(a);
return 0;
}

 Профиль  
                  
 
 
Сообщение14.03.2011, 22:28 


22/12/10
15
хм..выдает: error c2143:syntax error:missing';'before'type'

 Профиль  
                  
 
 Re: динамическое выделение памяти в си
Сообщение14.03.2011, 22:42 
Модератор
Аватара пользователя


16/02/11
3788
Бурашево
Код:
#include<stdio.h>
#include<locale.h>
#include<malloc.h>
#include<stdlib.h>

int main()
{
setlocale(LC_ALL,"Russian");
float*a = (float*)malloc(10*sizeof(float));
printf("введите элементы массива");
for(i=0;i<n;i++)scanf("%f",&a[i]);
printf("массив");
for(i=0;i<n;i++)printf("a[%d]=%f \t",i,a[i]);
free(a);
return 0;
}


Попробуйте пробел перед звёздочкой убрать там где (float*) Если не получится, то макрос этот n и 10. И компилятор ведь должен писать на какую именно строку он ругается.

 Профиль  
                  
 
 
Сообщение14.03.2011, 22:48 


22/12/10
15
Цитата:
Попробуйте пробел перед звёздочкой убрать там где (float*) Если не получится, то макрос этот n и 10. И компилятор ведь должен писать на какую именно строку он ругается.

без результата((
ругается на 11ю,т.е. на
Код:
float*a = (float*)malloc(n*sizeof(float));

 Профиль  
                  
 
 Re: динамическое выделение памяти в си
Сообщение14.03.2011, 22:52 
Заслуженный участник


04/05/09
4587
Вы компилируете как C или C++? В C все определения переменных должны быть в самом начале блока, до остальных операторов, типа вызова функции setlocale().

 Профиль  
                  
 
 
Сообщение14.03.2011, 23:05 


22/12/10
15
как с

уфф..вроде заработало

Код:
{int i;
float *a;
a= (float*)malloc(n*sizeof(float));


спасибо))

 Профиль  
                  
 
 
Сообщение18.03.2011, 19:41 


14/01/10
19
Можно еще так, если в плюсах:
Код:
int n;
float *a = new float [n]

 Профиль  
                  
 
 
Сообщение19.03.2011, 11:26 


22/12/10
15
я так тоже пробовала,но компилятор ругался как и с маллоком, пока не разделила объявление типа *а и собственно выделение памяти.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group