Я пытаюсь прочитать аргумент командной строки в массив unsigned char с фиксированным размером. Я получаю ошибку сегментации.C++ чтение argv в unsigned char фиксированный размер: ошибка сегментации
Мой код:
#include <stdio.h>
#include <iostream>
#include <stdlib.h>
#include <memory.h>
unsigned char key[16]={};
int main(int argc, char** argv){
std::cout << "Hello!" << std::endl;
long a = atol(argv[1]);
std::cout << a << std::endl;
memcpy(key, (unsigned char*) a, sizeof key);
// std::cout << sizeof key << std::endl;
// for (int i = 0; i < 16; i++)
// std::cout << (int) (key[i]) << std::endl;
return 0;
}
Что я делаю неправильно?
Для вызова программы:
компиляции: g++ main.cpp
Execute: ./a.out 128
Ваш вопрос не заполнен. Как вы называете свою программу? –
Что вы перешли на главную ???? – Raindrop7
Может быть любое число от 0 до 2^128, верно? !! – algoProg