przekazywanie adresu do wskaźnika
Ostatnio zmodyfikowano 2015-03-31 16:16
b0r0 Temat założony przez niniejszego użytkownika |
przekazywanie adresu do wskaźnika » 2015-03-30 11:55:58 Witam mam problem z przekazaniem adresu do wskaźnika z tym ze adres który chce przekazać jest w stringu char*. Jak adres zawarty w char* przekazać do int*?
dla jasności w char* avalue posiada argument podany przy wywołaniu programu( -a 0x111103a) i to muszę przekazać tak zęby int* tab przyjęło ten właśnie adres. |
|
aksen |
» 2015-03-30 12:16:20 wklej kod programu |
|
Monika90 |
» 2015-03-30 12:45:28 Jeżeli IOStream w Twojej implementacji używa formatu 0x111103a do zapisu i odczytu wskaźników to możesz to wykorzystać. std::istringstream ins( "0x111103a" ); void * p; ins >> p; int * ip = static_cast < int *>( p );
|
|
b0r0 Temat założony przez niniejszego użytkownika |
» 2015-03-30 18:50:47 #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/types.h>
int main( int argc, char ** argv ) { char * avalue = NULL; int * pidy; pidy =( int * ) malloc( 255 * sizeof( int ) ); int * pidy2; pidy2 =( int * ) malloc( 255 * sizeof( int ) );
to tylko fragment a o co chodzi? Program poprzez argument, z innego programu który go wywoła, ma dostać adres tablicy zawierającej PID procesów potem tą tablice musi sobie skopiować z "pidy" do "pidy2". Wszystko jest pisane pod linuxa i jestem ograniczony jeśli chodzi o wykorzystanie dodatkowych bibliotek. |
|
michal11 |
» 2015-03-30 18:59:18 Musisz też dostać w jakiś sposób rozmiar tej tablicy. Na pewno przyda ci się funkcja atoi. Wystarczy iterować po argv i zamienić char* na int. |
|
kubawal |
» 2015-03-31 16:16:59 Wyciągnij unsigned int z stringa i użyj reinterpret_cast<int*> |
|
« 1 » |