我需要打印一个指针的地址。这是我的代码?
float arr[5] = {1.2 , 2.3 , 5 , 7.1 , 9.6};
float *ptrarr;
ptrarr = &arr[0];
printf("Address of ptrarr+2=%p,%p \n\n",ptrarr+2,&arr[2]);
Run Code Online (Sandbox Code Playgroud)
我知道指针地址有 8 个字节,但我的输出总是 16 个字节。这是输出
Address od ptarr+2=000000000061FDE8,000000000061FDE8
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下吗?
我只有一个函数可以找出整数数组的最大值,但是我得到了一个分段错误,我找不到它,因为编译器没有向我显示错误行。
这是我的 C 代码:
#include <stdlib.h>
#include <stdio.h>
//Funktion ermittelt den größten Wert eines Arrays
int groesstesElement(int **arrayPointer){
int max = 0;
for (int i = 0; i < 3; i++) {
if (*arrayPointer[i]>max) {
max = *arrayPointer[i];
}
}
return max;
}
int main (int argc, char **argv) {
int array[4]={1,2,3,4};
int *ptr = array;
int z = groesstesElement(&ptr);
printf("%d\n", z);
return EXIT_SUCCESS;
}
Run Code Online (Sandbox Code Playgroud)
我使用 macOS 和 VSC。
我的服务器正在从 Telit ME910C1 LTE Cat-M 调制解调器接收数据。该装置放置在行驶中的车辆上。
有时响应会延迟收到,当它按时收到响应时,小区 ID 会发生变化。
请帮我缩小这个问题的范围:我需要对下面代码部分中附加的消息进行解释+CEREG。
+CEREG: 1,"4CO3","AD9C30F",8 T:(0:43:36) // server delay starts now
+CEREG: 1,"4C01","AE25C11",8 T:(0:47:36)
+CEREG: 1,"4C01","AE15E10",8 T:(0:49:58)
+CEREG: 1,"4CO3","AE2DA10",8 T:(0:50:13)
+CEREG: 1,"4CO3","AE2DAOF",8 T:(0:52:30)
+CEREG: 1,"4CO3","AE1D010",8 T:(0:52:48)
+CEREG: 1,"4CO3","AE19611",8 T:(0:54:48)
+CEREG: 1,"4CO3","AE1960F",8 T:(0:56:9)
+CEREG: 1,"4CO3","AE19610",8 T:(0:57:54)
+CEREG: 1,"4CO3","AE26611",8 T:(0:58:27)
+CEREG: 1,"4CO3","AE19610",8 T:(0:58:38)
+CEREG: 1,"4CO3","AE26610",8 T:(0:58:48)
+CEREG: 1,"4CO3","AE1B411",8 T:(1:2:9)
+CEREG: 1,"4CO3","AE1B40F",8 T:(1:3:47)
+CEREG: 1,"4CO3","AE1B415",8 T:(1:4:23)
+CEREG: 0 T:(1:7:27)
+CEREG: 0 T:(1:7:51)
+CEREG: 2 T:(1:7:52)
+CEREG: 1,"4CO3","AE1B415",8 T:(1:7:52)
+CEREG: 2,1,"4CO3","AE1B415",8 T:(1:8:1) // …Run Code Online (Sandbox Code Playgroud) 我的问题与 SIM800 连接消息有关。
我使用的是STM32开发板的模块。有时模块会分别报告SMS Ready和Call Ready消息。当我开始向模块发送 AT 命令时,它可能会发送这些消息(并非每次都会发生)。
然而,我之前发送的命令显然是不相关的(例如 HTTP 命令),并且SMS Ready / Call Ready消息在意想不到的情况下即将到来。
因此,Keil"Can not access"在调试会话中报告消息。是否可以在建立连接时禁用这些消息?或者这意味着模块意外重置?
小查询:在 Python 中,我知道您可以通过以下方式检查 chara是否在数组内b:
b = ['a', 'b', 'c', ...] # would be filled with letters
if str(a) in b:
# instructions.
Run Code Online (Sandbox Code Playgroud)
在 C 语言中是否有类似的运算符或方法?
我正在尝试将来自设备的输入(始终为 1 到 600000 之间的整数)转换为四个 8 位整数。
例如,
如果输入是 32700,我想要188 127 00 00.
我通过使用实现了这一点:
32700 % 256
32700 / 256
Run Code Online (Sandbox Code Playgroud)
以上工作到 32700。从 32800 开始,我开始得到不正确的转换。
我对此完全陌生,并希望得到一些帮助以了解如何正确完成此操作。
I tried installing pgadmin4 on debian10 and it reported:
dpkg: error processing archive /var/cache/apt/archives/pgadmin4-web_4.24_all.deb (--unpack):
trying to overwrite '/etc/apache2/conf-available/pgadmin4.conf', which is also in package pgadmin4-apache2 4.23-1.pgdg100+1
Run Code Online (Sandbox Code Playgroud)

我与 zmq 一起使用timerfd。
如何使用计时器timerfd_create并timerfd_set等待一秒钟(https://man7.org/linux/man-pages/man2/timerfd_create.2.html)?
我已经浏览了链接,但我仍然不明白如何初始化一个计时器,该计时器在创建和设置时每滴答等待一秒。这正是我的任务:
我们用 启动一个计时器
timerfd_create(),即 1/秒。滴答作响。当使用计时器设置计时器时,_set_(..)计数器会简单地增加,而每次滴答都会减少。当计数器达到 0 时,计时器就到期了。
在这个项目中,我们有一个函数timer _ set _(),其中定时器是通过函数timerfd_create和设置的timerfd_settimer()。我希望你可以帮助我。
这是我的进度(我的代码的一部分):
struct itimerspec timerValue;
g_items[n].socket = nullptr;
g_items[n].events = ZMQ_POLLIN;
g_items[n].fd = timerfd_create(CLOCK_REALTIME, 0);
if(g_items[n].fd == -1 ){
printf("timerfd_create() failed: errno=%d\n", errno);
return -1;
}
timerValue.it_value.tv_sec = 1;
timerValue.it_value.tv_nsec = 0;
timerValue.it_interval.tv_sec = 1;
timerValue.it_interval.tv_nsec = 0;
timerfd_settime(g_items[n].fd, 0, &timerValue, NULL);
Run Code Online (Sandbox Code Playgroud) 我是一个 C 编程新手。
通过其他问题的答案,我可以理解“角色”一词可能指向不同的元素;例如字母和数字。
我将“字符串”视为字符。
然后,请看以下几行:
#include <stdio.h>
main()
{
int numbers = 123;
printf("%c%s\n", "N", numbers);
}
Run Code Online (Sandbox Code Playgroud)
当我尝试编译此代码时,显示错误消息并且编译失败。
教科书“C 编程语言”第 13 页对 printf 格式说明符的说明如下;
“
%c为性格”“
%s为字符串”。
第一个问题:
虽然“N”是一个字符,但为什么%c说明符无效?
第二个问题:
尽管变量“numbers”的值为“123”,但它们是数字,包含在字符中。
我认为字符等于“字符串”。
那么,虽然我用 %s 表示“123”,但为什么无效呢?
我知道我的代码会起作用,如果我像下面那样修改它们:
#include <stdio.h>
main()
{
int numbers = 123;
printf("%s%d\n", "N", numbers);
}
Run Code Online (Sandbox Code Playgroud)
但我想了解为什么上面的代码无效。
else if当您分配给choicevalue时,以下代码不会执行最后一条语句3。
#include<stdio.h>
#include<stdlib.h>
int main() {
puts("Specify with a number what is that you want to do.");
puts("1. Restore wallet from seed.");
puts("2. Generate a view only wallet.");
puts("3. Get guidance on the usage from within monero-wallet-cli.");
unsigned char choice;
choice = getchar();
if ( choice == '1' ) {
system("nice -19 ~/monero-x86_64-linux-gnu-v0.17.2.0/monero-wallet-cli --testnet --restore-deterministic-wallet");
exit(0);
}
else if ( choice == '2' ) {
system("nice -19 ~/monero-x86_64-linux-gnu-v0.17.2.0/monero-wallet-cli --testnet --generate-from-view-key wallet-view-only");
exit(0);
}
else …Run Code Online (Sandbox Code Playgroud)