IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Программирование (http://www.imho.ws/forumdisplay.php?f=40)
-   -   Работа с указателями в С++ (http://www.imho.ws/showthread.php?t=31055)

Tyler Derden 02.06.2003 01:16

Работа с указателями в С++
 
Подскажите, плиз, как при помощи указателя на указатель создать 2-ый массив.
Моя прога вроде бы и работает, но после getch'а выпадает либо Unhandled exception in 4.exe: 0xC0000005: Access Violation, либо - синий экран смерти.

int *cols=new int[5];//кол-во строк
int **b=&cols;//указатель на массив указателей cols

for(int i=0;i<5;i++) //кол-во элементов в каждой строке
*(b+i)=new int[5];

for(i=0;i<5;i++)
for(int j=0;j<5;j++)
b[i][j]=i*5+j;

for(i=0;i<5;i++){
for(int j=0;j<5;j++)
cout<<b[i][j]<<" ";
cout<<endl;
}

getch();

alexey_ma 02.06.2003 10:48

>>int *cols=new int[5];//кол-во строк
>>int **b=&cols;//указатель на массив указателей cols

Это не указатель на массив указателей, это указатель на указатель на массив int-тов.
попробуй так:
Код:

int** b= new (int*[5]);
for(int i=0;i<5;i++)
        b[i]=new int[5];
for(i=0;i<5;i++)
        for(int j=0;j<5;j++)
                b[i][j]=i*5+j;

for(i=0;i<5;i++)
{
        for(int j=0;j<5;j++)       
                cout<<b[i][j]<<" ";
                               
       
        cout<<endl;
}
      getch();
//не забудь удалить
        for( i=0;i<5;i++)
                delete[](b[i]);
        delete[] b;



Часовой пояс GMT +4, время: 17:28.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.