Неполадки с компилятором или ОС???
Так так более походящих раделов нет - пишу сюда. Проблема в том, что припрограммировании на Си под Windows(DOS) вылазит ошибка "Нарушение прав доступа к памяти". В чем косяк не могу разобраться, если кто знает в чем дело, пожалуйста напишите....
Дай исходник или фрагмент кода, в котором ошибка вылазит. Тогда решение проблемы быстрее появится
Так так более походящих раделов нет - пишу сюда. Проблема в том, что припрограммировании на Си под Windows(DOS) вылазит ошибка "Нарушение прав доступа к памяти". В чем косяк не могу разобраться, если кто знает в чем дело, пожалуйста напишите....
ну косяк вероятнее всего в ОС. а именно - ты пытаешся лезть в те области памяти, на которые права не имеешь (например прямо писать в видеопамять из юзерской проги". без кода точнее не скажу.
Так так более походящих раделов нет - пишу сюда. Проблема в том, что припрограммировании на Си под Windows(DOS) вылазит ошибка "Нарушение прав доступа к памяти". В чем косяк не могу разобраться, если кто знает в чем дело, пожалуйста напишите....
Мб ты пользуешься "пустым" указателем, который "указывает" на нулевой сектор?
{
//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);
}
Ошибка происходит в этой функции.
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*, ты его преобразуешь слепо в указатель на указатель (если для тебя конечно это что-то значит). После этого ты пытаешся лезть к богу за пазузу!!! Ессно дадут по рукам, а можешь и систему положить. УДАЧИ!!!
malloc() насколько я помню возвратит void*, ты его преобразуешь слепо в указатель на указатель (если для тебя конечно это что-то значит). После этого ты пытаешся лезть к богу за пазузу!!! Ессно дадут по рукам, а можешь и систему положить. УДАЧИ!!!
начт я был прав ) тему переношу в Borland C++
malloc() насколько я помню возвратит void*, ты его преобразуешь слепо в указатель на указатель (если для тебя конечно это что-то значит). После этого ты пытаешся лезть к богу за пазузу!!! Ессно дадут по рукам, а можешь и систему положить. УДАЧИ!!!
И как же мне это "неслепо" сделать, если мне нужен массив в динамической памяти.
И как же мне это "неслепо" сделать, если мне нужен массив в динамической памяти.
Используй вместо 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 - размер массива