我想读命令行参数到一个固定大小的无符号字符数组。我得到分段错误。c + +读取argv到无符号字符固定大小:分段错误
我的代码:
#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
执行:./a.out 128
你的问题是不完整的。你怎么称呼你的程序? –
你传递给了什么? – Raindrop7
它可以是0到2^128之间的任何数字,对吗? – algoProg