My main() должен получить адрес в качестве входного файла, который необходимо сохранить в адресе void*
.Pass void * type to main() function
int main(int argc, char *argv[])
{
if (argc > 1) {
HandleStr = argv[1];
printf("\n Handle passed : %s\n",HandleStr);
}
}
Я хочу эту ручкуStr как тип void *
. Как я могу это сделать?
Теперь я хочу, чтобы запустить ехес в ./testapp "0xaf6e9800"
Вы знаете, что на современных операционных системах процессы имеют виртуальные адресные пространства, и, что более важно, каждое виртуальное адресное пространство процесса отделено от других процессов. Это означает, что действительный адрес в одном процессе, скорее всего, не будет действительным в другом процессе, и даже если он действителен, нет гарантии, что он указывает на аналогичные данные. –
Аргументы в 'argv []' всегда являются строками (char *). Таким образом, добавленные вами addres должны быть сначала преобразованы в число и после этого обработаны как указатель. –
Если вы хотите разделить память между двумя процессами, то это называется [* shared memory *] (https://en.wikipedia.org/wiki/Shared_memory_%28interprocess_communication%29), и даже при использовании того, что фактические адреса будут скорее всего, будут отличаться в двух процессах. –