小编flu*_*ter的帖子

将一个大浮点数存储到一个整数中(强制转换,不投出)

标准是什么(标准中有差异?)说关于将整数范围内的浮点数分配给这个整数?

那么这里应该发生什么,假设16位短,以保持数字小 (USHRT_MAX == 65535)

float f = 100000.0f;
short s = f;
s = (short) f;
unsigned short us = f;
us = (unsigned short) f;
Run Code Online (Sandbox Code Playgroud)

c

2
推荐指数
1
解决办法
27
查看次数

为什么struct字段的格式字符串总是小写

当使用json对结构体进行编码/解码时,几乎所有代码都使用相同的字段名,但首字母小写,这是为什么?

既然名称是相同的,并且 json 当然可以适用于任何情况,为什么要添加这个重复的东西:

Name string `json:"name"`
Run Code Online (Sandbox Code Playgroud)

为什么不直接使用Name string呢?在另一种情况下,如果名称与 go 字段名称不同,则添加格式字符串是有意义的:

Name string `json:"MyName"`
Run Code Online (Sandbox Code Playgroud)

json go

2
推荐指数
1
解决办法
1616
查看次数

等待导航pushasync?

在Xamarin表单中,PushAsync等导航方法是异步Task返回方法,但是看await调用的时候使用没有区别,是吗?我应该等待这些电话吗?

另一个问题,导航指南说模型页面用于导航到需要在关闭之前完成自包含任务的页面,但看起来pushasync和pushmodelasync之间没有区别,除了模型页面没有导航栏,用户仍然可以使用 os 后退按钮像 pushasync 一样返回,对吗?

c# navigation xamarin xamarin.forms

2
推荐指数
1
解决办法
1798
查看次数

显示cdir值

当我尝试查看gdb尝试搜索源文件的目录时,我使用show directories,它输出一个变量:

(gdb) show directories
Source directories searched: $cdir:$cwd
Run Code Online (Sandbox Code Playgroud)

但是,如何显示两个变量的值:cdircwd?尝试showp没有工作。

gdb

1
推荐指数
1
解决办法
453
查看次数

std::variant 中具有可变长度数组的结构

所以我正在使用带有可变长度数组成员的结构类型,如下所示:

struct Entry;

struct Data {
    int members;
    size_t entries_size;
    Entry entries[1];
};
Run Code Online (Sandbox Code Playgroud)

成员entries_size是数组的实际大小entires,只有从网络读取时才知道。问题是,我想在其他网络数据类型中使用它std::variant,如何将它放入std::variant整个数据对象的足迹中,而不会让悬空指针到处乱飞?

std::variant<Data, OtherData2, OhterData3...> v;
Run Code Online (Sandbox Code Playgroud)

c++ arrays variant variable-length-array c++17

1
推荐指数
1
解决办法
444
查看次数

C变量声明

#include <stdio.h>
int main(void){
    char c1[], c2[];
    c1 = "hello";
    c2 = "world";
    printf("%s %s", c1, c2);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

究竟是什么让我无法使用'char c1 [],c2 []'?我有一些Java知识,我发现C语法比较熟悉,但显然有些东西不起作用.

是否有任何理由将char声明为char变量[]而不是char []变量?它似乎更有意义(Java表示法)

c

0
推荐指数
1
解决办法
74
查看次数

将 Int 添加到字符串

我正在尝试向字符串添加一个整数。所以它是这样的:

pass_value = m + ";" + v1 + ";" + v2 + ";" + v3 + ";" + v4
Run Code Online (Sandbox Code Playgroud)

输出将是:

2;23;21;53;34
Run Code Online (Sandbox Code Playgroud)

但这不起作用。你能帮我吗?

c string int

0
推荐指数
1
解决办法
2712
查看次数

EFCore在dbcontext的生命周期中使用单个dbconnect

我正在使用EFCore将数据传输到后端数据库,我要求SaveChanges每增加一定数量的新对象添加到数据集中,我从EFCore调试日志中注意到它将关闭连接并在每次调用时打开一个新连接SaveChanges:

Microsoft.EntityFrameworkCore.Storage.Internal.SqlServerConnection|DEBUG|Opening connection to database ...
Microsoft.EntityFrameworkCore.Storage.Internal.SqlServerConnection|DEBUG|Beginning transaction with isolation level 'Unspecified'.
Microsoft.EntityFrameworkCore.Storage.Internal.SqlServerConnection|DEBUG|Committing transaction
Microsoft.EntityFrameworkCore.Storage.Internal.SqlServerConnection|DEBUG|Closing connection to database...
.... the logs repeats forever
Run Code Online (Sandbox Code Playgroud)

那么无论如何只需要在一个生命周期中使用一个连接DbContext

c# entity-framework entity-framework-core .net-core

0
推荐指数
1
解决办法
725
查看次数

内置函数 bzero 的不兼容隐式声明

我是 c 编程的新手,我目前正在尝试理解网络编程的概念。我试图在 Kali linux(基于 Debian 的 linux 系统)上运行一个简单的服务器代码,但是有很多我无法调试的错误。请看看我的代码。

代码 :

#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <time.h>
#include <stdlib.h>


#define SA  struct sockaddr
#define MAXLINE 4096

int main(int argc,int **argv)
{
    int roockfd,confd;
    socklen_t len;
    struct sockaddr_in servaddr,cliaddr;
    char buff[MAXLINE];
    time_t ticks;

    roockfd = socket(AF_INET,SOCK_STREAM,0);

    bzero(&servaddr,sizeof(servaddr));
    servaddr.sin_family = AF_INET;
    servaddr.sin_port = htons(13);
    servaddr.sin_addr.s_addr=htonl(INADDR_ANY);

    Bind(roockfd,(SA*)&servaddr,sizeof(servaddr));

    Listen(roockfd,5);

    for(; ;)            
    {
        len=sizeof(cliaddr);

        confd= Accept(roockfd,(SA*)&cliaddr,&len);
        printf("Connection from %s, port %d\n",
            Inet_ntop(AF_INET,&cliaddr.sin_addr,buff,sizeof(buff)),
            ntohs(cliaddr.sin_port));

        ticks=time(NULL);
        snprintf(buff,sizeof(buff),"%.24s\r\n", ctime(ticks));
        printf(confd,buff,strlen(buff));
        close(confd);
    }
}
Run Code Online (Sandbox Code Playgroud)

等待您的宝贵答复。

c sockets linux

-1
推荐指数
1
解决办法
1万
查看次数

字符串副本是说缓冲区太小,strcpy_s源问题

我很困惑,如果这很明显我很抱歉,但是:

int main()
{
    char stringDest[20];
    char stringSource[20];

    strcpy_s(stringDest, stringSource);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

引发异常"缓冲区太小".鉴于:

char stringSource[20];

int main()
{
    char stringDest[20];

    strcpy_s(stringDest, stringSource);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

工作良好.

此外,我认为安全的要点strcpy_s(dest, size, source)是你指定了复制的字节数,但是当我这样做时:

int main()
{
    char stringDest[20];
    char stringSource[20];

    strcpy_s(stringDest, 1, stringSource);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我得到一个"缓冲区太小的例外".我感到很困惑.为什么声明外部变量main()会产生影响?为什么指定要复制的1个字节是错误的?

c c++ string char strcpy

-1
推荐指数
1
解决办法
562
查看次数

写入共享内存核心转储分段故障

我需要写共享内存,因此我有

#define FLAGS IPC_CREAT | 0644
int main() {
key = ftok("ex31.c", 'k');
shmid = shmget(key, 3, FLAGS);
shmaddr = shmat(shmid,0,0);    // THOSE LINES WORK AS EXPECTED

char* userInput = malloc(5);
read(0, userInput, 3);  // I want to read "b34" for example, WORKS GOOD
strcpy(shmaddr,userInput);   // THROWS EXCEPTION!
}
Run Code Online (Sandbox Code Playgroud)

它会抛出异常strcat,如果我删除它,则会在下一行抛出异常strcpy.我需要写入内存" b34\0"(4个字符),然后读取它.

c malloc coredump shared-memory backslash

-2
推荐指数
1
解决办法
228
查看次数

为什么指针在释放后会变量存储其先前存储的地址的新地址?

我有两个问题.

  1. freeC 中的函数如何工作?
  2. 为什么指针变量会自行更新以存储新地址?

这是我的代码:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int a;
    int *p;
    p = (int *)malloc(sizeof(int));
    *p = 10;
    int *q = p;
    printf("p:%d\n", p);
    printf("q:%d\n", q);
    printf("*p:%d\n", *p);
    printf("*q:%d\n", *q);
    free(p);
    printf("Memory freed.\n");
    p = (int *)malloc(sizeof(int));
    *p = 19;

    printf("p:%d\n", p);
    printf("q:%d\n", q);
    printf("*p:%d\n", *p);
    printf("*q:%d\n", *q);
}
Run Code Online (Sandbox Code Playgroud)

为什么输出是这样的?

p:2067804800
q:2067804800
*p:10
*q:10
Memory freed.
p:2067804800
q:2067804800
*p:19
*q:19
Run Code Online (Sandbox Code Playgroud)

c malloc free dynamic-memory-allocation

-4
推荐指数
1
解决办法
78
查看次数