在我正在阅读的一本书中,写printf了一个单一的参数(没有转换说明符)被弃用了.它建议替代
printf("Hello World!");
Run Code Online (Sandbox Code Playgroud)
同
puts("Hello World!");
Run Code Online (Sandbox Code Playgroud)
要么
printf("%s", "Hello World!");
Run Code Online (Sandbox Code Playgroud)
谁能告诉我为什么printf("Hello World!");是错的?书中写道它包含漏洞.这些漏洞是什么?
我想创建一个带有 Mongo 实例的 Docker 容器。特别是,我想创建一个只有一个节点的副本集(因为我对事务感兴趣并且它们仅可用于副本集)。
文件
FROM mongo
RUN echo "rs.initiate();" > /docker-entrypoint-initdb.d/replica-init.js
CMD ["--replSet", "rs0"]
Run Code Online (Sandbox Code Playgroud)
docker-compose.yml
version: "3"
services:
db:
build:
dockerfile: Dockerfile
context: .
ports:
- "27017:27017"
Run Code Online (Sandbox Code Playgroud)
如果我单独使用 Dockerfile 一切都很好,而如果我使用 docker-compose 它不起作用:事实上,如果我然后登录到容器,我得到的提示rs0:OTHER>是rs0:PRIMARY>.
我查阅了这些链接,但提出的解决方案不起作用:
https://github.com/docker-library/mongo/issues/246#issuecomment-382072843 https://github.com/docker-library/mongo/issues/249#issuecomment-381786889
#include <stdio.h>
#include <stdlib.h>
#define MAX 15 //line that give problems
int linearSearch(int v[], int MAX, int valore);
int main()
{
int ris, valore, v[]={1,1,1,1,1,1,1,1,1,12,1,1,1,1,1};
scanf("%d", &valore);
ris = linearSearch(v, MAX, valore);
printf("%d", ris);
return 0;
}
int linearSearch(int v[], int MAX, int valore)
{
int i;
for (i=0;i<MAX;i++)
{
if(valore==v[i])
return i;
}
return -1;
}
Run Code Online (Sandbox Code Playgroud)
为什么这段代码在编译时报告错误?如果我用预处理器指令替换它,为什么它运行正常
const int MAX = 15;
Run Code Online (Sandbox Code Playgroud)