Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

przekazywanie adresu do wskaźnika

Ostatnio zmodyfikowano 2015-03-31 16:16
Autor Wiadomość
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.
P-129535
aksen
» 2015-03-30 12:16:20
wklej kod programu
P-129537
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ć.
C/C++
std::istringstream ins( "0x111103a" );
void * p;
ins >> p;
int * ip = static_cast < int *>( p );
P-129540
b0r0
Temat założony przez niniejszego użytkownika
» 2015-03-30 18:50:47
C/C++
#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.
P-129573
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.
P-129575
kubawal
» 2015-03-31 16:16:59
Wyciągnij unsigned int z stringa i użyj reinterpret_cast<int*>
P-129636
« 1 »
  Strona 1 z 1