【发布时间】:2015-03-07 21:43:51
【问题描述】:
我正在编写一个程序来模拟 C++ 中的缓存,并尝试将文件中给出的地址复制到数组中。我正在努力弄清楚如何将一个数组复制到另一个数组中,以便我可以拥有一个内存地址数组的数组。我已将地址读入一个名为“address”的数组,并且我希望我的模拟缓存是一个名为“L1_Cache”的数组。 h 是我在将地址放入 L1_Cache 后递增的计数器。此外,缓存大小将是我的 L1_Cache 数组中可用的地址行数,这将由程序的用户决定。下面是我试图将数组放入另一个数组的 sn-p。
if(sizeof(L1_Cache) < cachesize)
strcpy(L1_Cache[][h], address);
它们被定义为:
const char* address[10];
char* L1_Cache;
如果有人对如何将一个数组复制到另一个数组以制作数组数组有任何建议,请告诉我。我不确定我所做的任何事情是否正确,但我正在努力解决这个问题。
我想将获得的新地址与 L1_Cache 数组中已经存在的旧地址进行比较。
【问题讨论】:
-
C++? Array of Arrays 不再是可取的东西。请改用 std::vector。
-
不要为 C 风格的数组烦恼。使用
std::array。与值语义相同的性能。 -
永远不要使用
strcpy,而是使用strncpy。您确定您使用的是 C++ 而不是 C? -
为什么你的 L1_Cache 是 char*?它不应该是一个二维数组吗? stackoverflow.com/a/7949598/546375
-
“试图复制文件中给出的地址” - 我真诚地希望您指的是邮政地址。您对
sizeof运算符的使用是高度 值得怀疑的,因为我真诚地怀疑您是否打算将该表达式与指针的大小 进行比较。这个问题很难理解。似乎最大的问题是不知道如何实施您的解决方案,实际上解决方案本身可能一开始就被怀疑是错误的。在您的问题中包含您的解决方案试图解决的实际问题;不仅仅是解决方案的问题。