Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.04.2011, 23:45   #1
GoRdoN 17
Пользователь
 
Регистрация: 19.07.2009
Сообщений: 17
По умолчанию Динамический массив Си

Есть код:
Код:
#include <stdio.h>
#include <malloc.h>

int main()
{
	float *mass;
	int m, i;
	
	printf("Vvedite razmer massiva: ");
	scanf("%d", &m);
	printf(";\n");
	
	mass = malloc(m*sizeof(float));
	printf("Vvod massiva...\n");
	for(i = 0; i < m; i++)
	scanf("%f", &mass[i]);

	for(i = (m-1); i > -1; i--)
	printf("%f", mass[i]);
	
	free(mass);
	return 0;	
}
Задача проста: ручной ввод массива и вывод его наоборот. Только массив динамический и размерность вручную. При компиляции выдает ошибку:
Код:
LAB3.C: In function ‘int main()’:
LAB3.C:13: error: invalid conversion from ‘void*’ to ‘float*’
Есть идеи?
GoRdoN 17 вне форума Ответить с цитированием
Старый 23.04.2011, 23:56   #2
Dayman
Форумчанин
 
Аватар для Dayman
 
Регистрация: 12.01.2011
Сообщений: 186
По умолчанию

Что у вас за компилятор? На Mingw все собирается.
Lingua c++ non penis caninus est.
Dayman вне форума Ответить с цитированием
Старый 23.04.2011, 23:59   #3
GoRdoN 17
Пользователь
 
Регистрация: 19.07.2009
Сообщений: 17
По умолчанию

Гмм... gcc linux . Дела. Спасибо что сказали как ни будь доделаю(основное задание опустил).
GoRdoN 17 вне форума Ответить с цитированием
Старый 24.04.2011, 00:04   #4
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

Код:
mass = (float*)malloc(m*sizeof(float));
так надежно и правильно.
malloc возвращает (void*) и не факт что сработает неявное преобразование.
onewho вне форума Ответить с цитированием
Старый 24.04.2011, 00:10   #5
Dayman
Форумчанин
 
Аватар для Dayman
 
Регистрация: 12.01.2011
Сообщений: 186
По умолчанию

Цитата:
Сообщение от GoRdoN 17 Посмотреть сообщение
Гмм... gcc linux . Дела. Спасибо что сказали как ни будь доделаю(основное задание опустил).
Мб gcc старый у вас какой? Или флаги какие специальные?

С "-Wextra -pedantic -pedantic-errors -ansi" тоже нормально собирается.
Lingua c++ non penis caninus est.

Последний раз редактировалось Dayman; 24.04.2011 в 00:14.
Dayman вне форума Ответить с цитированием
Старый 24.04.2011, 00:15   #6
GoRdoN 17
Пользователь
 
Регистрация: 19.07.2009
Сообщений: 17
По умолчанию

Код:
gcc version 4.4.5 (Ubuntu/Linaro 4.4.4-14ubuntu5)
Вроде норм все... Черт его знает. Может машину перезапустить...
Power off...
GoRdoN 17 вне форума Ответить с цитированием
Старый 24.04.2011, 00:19   #7
GoRdoN 17
Пользователь
 
Регистрация: 19.07.2009
Сообщений: 17
По умолчанию

Цитата:
Сообщение от GoRdoN 17 Посмотреть сообщение
Код:
gcc version 4.4.5 (Ubuntu/Linaro 4.4.4-14ubuntu5)
Вроде норм все... Черт его знает. Может машину перезапустить...
Power off...
Безрезультатно.
А флаги вообще не использую.
GoRdoN 17 вне форума Ответить с цитированием
Старый 24.04.2011, 00:28   #8
GoRdoN 17
Пользователь
 
Регистрация: 19.07.2009
Сообщений: 17
По умолчанию

Гмм.. Сделал вот так:
Код:
gcc -Wall -x c -o ./test LAB3.C
Заработало. Попытаюсь понять в чем дело.
А вам Dayman спасибо.
GoRdoN 17 вне форума Ответить с цитированием
Старый 24.04.2011, 00:29   #9
Dayman
Форумчанин
 
Аватар для Dayman
 
Регистрация: 12.01.2011
Сообщений: 186
По умолчанию

На убунту тоже собралось.

У вас точно все установлено?
build-essential, например. Это мета-пакет, который тянет помимо gcc еще и stdlib
Lingua c++ non penis caninus est.
Dayman вне форума Ответить с цитированием
Старый 25.01.2013, 15:23   #10
skident
Новичок
Джуниор
 
Регистрация: 25.01.2013
Сообщений: 1
По умолчанию

Как уже написал onewho нужно явно привести тип, а не грешить на компилятор.
Цитата:
mass = (float*)malloc(m*sizeof(float));
skident вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамический массив, массив указателей alexalisa Паскаль, Turbo Pascal, PascalABC.NET 4 22.04.2011 21:33
Динамический массив dimok5 Паскаль, Turbo Pascal, PascalABC.NET 0 10.04.2011 08:15
Динамический массив - или всё таки не динамический? vedro-compota Общие вопросы C/C++ 30 10.12.2010 23:22
динамический массив!!!! zarinka0992 Помощь студентам 1 11.02.2010 09:06
Динамический массив Ivin Мультимедиа в Delphi 14 27.02.2009 23:22