【发布时间】:2017-06-11 20:19:53
【问题描述】:
我正在我的Arduino Uno 上运行此代码:
#include <stdlib.h>
#include <Arduino.h>
#include <SoftwareSerial.h>
#include <MemoryFree.h>
void setup() {
Serial.begin(9600);
char cc[300];
char* ce = "Bonjour ca va et toi ?Bonjour ca va et toi ?Bonjour ca va et toi ?Bonjour ca va et toi ?";
strcpy(cc, ce, 300);
Serial.println(getFreeMemory());
}
void loop() {
// Put your main code here, to run repeatedly:
}
所以我想看看这占用了多少内存。我很惊讶它不是我预期的 300,而是 300 + len(cc)。我想我不明白strcpy 是如何工作的。但我认为这段代码会将ce 复制到cc 并且不会使用更多内存。
另一件事:当我在没有 strcpy 的情况下运行代码时,就像我的 SRAM 中什么都没有。
【问题讨论】:
-
strcpy接受 两个 参数,而不是三个。 -
是的,我知道,我只是在复制粘贴时失败了。一开始我用的是strncopy。