[C] Operacja na wskaźniku nie przekazuje zmian do funkcji main
Ostatnio zmodyfikowano 2013-06-18 13:11
MARCIN-QWERTY Temat założony przez niniejszego użytkownika  | 
[C] Operacja na wskaźniku nie przekazuje zmian do funkcji main » 2013-06-17 21:12:13 Tworzenie tablic dynamicznych w C, problem z tym że można wydrukować tablice tylko z funkcji wypełnij a ja bardzo chcialbym z main ;)
 wyglada to tak jakbym dzialal na zmiennej lokalnej ? ale przecież to wskaźnik ? bardzo prosze o pomoc. (sorry ale jestem nowy mam nadzieje że nie zrobiem żadnego błędu i nie zaśmiecam forum)   #include <stdio.h> #include <stdlib.h>
  char * wypelnij( char * wsk, char zn, int n );
  int main() {     char zn;     char * wsk;     int rozmiar;          puts( "podaj rozmiar" );     scanf( "%d", & rozmiar );     fflush( stdin );          puts( "podaj znak ktorym wypelnisz tablice" );     scanf( "%c", & zn );     fflush( stdin );          wypelnij( wsk, zn, rozmiar );          puts( wsk );           free( wsk );          return 0; }
  char * wypelnij( char * wsk, char zn, int n ) {     int i;     wsk =( char * ) malloc( n * sizeof( char ) );          for( i = 0; i < n; i++ )     {         wsk[ i ] = zn;     }     wsk[ i ] = '\0';          puts( wsk );  }  | 
 | 
pekfos  | 
» 2013-06-17 21:30:46 Przekaż wskaźnik przez wskaźnik lub referencje.
  //edit: nie doczytałem, że chodzi o C ;)  | 
 | 
DejaVu  | 
» 2013-06-18 13:11:57 Jeżeli chcesz modyfikować wskaźnik przekazany poprzez argument to:
 #include <stdio.h>  #include <stdlib.h> 
  void funkcja( int ** wskaznik ) {     * wskaznik =( int * ) malloc( sizeof( int ) * 123 ); }
  int main() {     int * wsk = 0;     printf( "%p\n", wsk );     funkcja( & wsk );     printf( "%p\n", wsk );     return 0; }  | 
 | 
|  « 1 »  |