Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Неполадки с компилятором или ОС???

13K
14 ноября 2005 года
skyborn-pv
5 / / 14.11.2005
Так так более походящих раделов нет - пишу сюда. Проблема в том, что припрограммировании на Си под Windows(DOS) вылазит ошибка "Нарушение прав доступа к памяти". В чем косяк не могу разобраться, если кто знает в чем дело, пожалуйста напишите....
292
15 ноября 2005 года
Matush
726 / / 14.01.2004
Цитата:
Originally posted by skyborn-pv
Так так более походящих раделов нет - пишу сюда. Проблема в том, что припрограммировании на Си под Windows(DOS) вылазит ошибка "Нарушение прав доступа к памяти". В чем косяк не могу разобраться, если кто знает в чем дело, пожалуйста напишите....



Дай исходник или фрагмент кода, в котором ошибка вылазит. Тогда решение проблемы быстрее появится

2
15 ноября 2005 года
squirL
5.6K / / 13.08.2003
Цитата:
Originally posted by skyborn-pv
Так так более походящих раделов нет - пишу сюда. Проблема в том, что припрограммировании на Си под Windows(DOS) вылазит ошибка "Нарушение прав доступа к памяти". В чем косяк не могу разобраться, если кто знает в чем дело, пожалуйста напишите....



ну косяк вероятнее всего в ОС. а именно - ты пытаешся лезть в те области памяти, на которые права не имеешь (например прямо писать в видеопамять из юзерской проги". без кода точнее не скажу.

239
15 ноября 2005 года
Dolonet
1.7K / / 20.05.2000
Цитата:
Originally posted by skyborn-pv
Так так более походящих раделов нет - пишу сюда. Проблема в том, что припрограммировании на Си под Windows(DOS) вылазит ошибка "Нарушение прав доступа к памяти". В чем косяк не могу разобраться, если кто знает в чем дело, пожалуйста напишите....

Мб ты пользуешься "пустым" указателем, который "указывает" на нулевой сектор?

13K
18 ноября 2005 года
skyborn-pv
5 / / 14.11.2005
float **input_var(float **mas, int *abcvar, int kolvar)
{
//F-ya vozvraschaet znachenie peremennih v
//upakovannom vide;

int i=0,kolabc=-1;
float num;

mas=(float**)malloc(2*kolvar*sizeof(float));
printf("Vv.znchenie peremennih: ");
while ((++kolabc)<26)
{
if (abcvar[kolabc])
{
printf("%c%c",kolabc+'a','=');
mas[i++][0]='a'+kolabc;
scanf("%f",&num); mas[i-1][1]=num;
printf("%c%c%f%c",int(mas[i-1][0]),'=',mas[i-1][1],'\n');
}
}
return(mas);
}


Ошибка происходит в этой функции.
9.7K
18 ноября 2005 года
DaemonDZK
59 / / 08.11.2005
Цитата:
Originally posted by skyborn-pv
float **input_var(float **mas, int *abcvar, int kolvar)
{
//F-ya vozvraschaet znachenie peremennih v
//upakovannom vide;

int i=0,kolabc=-1;
float num;

mas=(float**)malloc(2*kolvar*sizeof(float));
printf("Vv.znchenie peremennih: ");
while ((++kolabc)<26)
{
if (abcvar[kolabc])
{
printf("%c%c",kolabc+'a','=');
mas[i++][0]='a'+kolabc;
scanf("%f",&num); mas[i-1][1]=num;
printf("%c%c%f%c",int(mas[i-1][0]),'=',mas[i-1][1],'\n');
}
}
return(mas);
}


Ошибка происходит в этой функции.



malloc() насколько я помню возвратит void*, ты его преобразуешь слепо в указатель на указатель (если для тебя конечно это что-то значит). После этого ты пытаешся лезть к богу за пазузу!!! Ессно дадут по рукам, а можешь и систему положить. УДАЧИ!!!

239
18 ноября 2005 года
Dolonet
1.7K / / 20.05.2000
Цитата:
Originally posted by DaemonDZK
malloc() насколько я помню возвратит void*, ты его преобразуешь слепо в указатель на указатель (если для тебя конечно это что-то значит). После этого ты пытаешся лезть к богу за пазузу!!! Ессно дадут по рукам, а можешь и систему положить. УДАЧИ!!!

начт я был прав ) тему переношу в Borland C++

13K
21 ноября 2005 года
skyborn-pv
5 / / 14.11.2005
Цитата:
Originally posted by DaemonDZK
malloc() насколько я помню возвратит void*, ты его преобразуешь слепо в указатель на указатель (если для тебя конечно это что-то значит). После этого ты пытаешся лезть к богу за пазузу!!! Ессно дадут по рукам, а можешь и систему положить. УДАЧИ!!!



И как же мне это "неслепо" сделать, если мне нужен массив в динамической памяти.

370
21 ноября 2005 года
koval
443 / / 29.08.2005
[QUOTE]Originally posted by skyborn-pv
И как же мне это "неслепо" сделать, если мне нужен массив в динамической памяти.


Используй вместо malloc функцию calloc и все будет в шоколаде

пример:
double **a;
int n,m,i,j;

a=(double **)calloc(m,sizeof(double *));

for (i=0; i<=m; i++)
{
a=(double *)calloc(n,sizeof(double));
}
n, m - размер массива
13K
24 ноября 2005 года
skyborn-pv
5 / / 14.11.2005
Да, вот это вроде помогло, спасибо! :)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог