小编Agr*_*cus的帖子

如果无法保证参数的评估顺序,编译器如何知道数组的维数

我的代码是:

//fun FUNCTION
void fun(int D1, int D2, int arr[D1][D2]) 
{
    //FUNCTION BODY
}


//MAIN FUNCTION

int D1, D2;
int arr[][3]=//VALUES
D2=sizeof(arr[0])/sizeof(a[0][0]);
D1=sizeof(arr)/sizeof(a[0]);

fun(D1,D2,arr);
Run Code Online (Sandbox Code Playgroud)

如果arr函数的参数顺序不确定,编译器将如何知道函数fun中数组的维数?

c

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

在视图上显示/不显示 spring 验证消息的原因

我尝试创建一个验证:

@Size(min = 6, message = "min 6 characters needed")
private String name;
Run Code Online (Sandbox Code Playgroud)

现在,当我使用带参数的方法(用POST注释)时:

@Valid LoginDetails loginDetails
Run Code Online (Sandbox Code Playgroud)

验证失败时(表单中输入的字符少于 6 个),不会显示错误消息。但如果我用这个作为论据:

@Valid @ModelAttribute("logindetails") LoginDetails loginDetails
Run Code Online (Sandbox Code Playgroud)

显示错误消息 - 我想了解为什么会发生这种情况。

这是最小的可重现代码:

package com.example.validationspring;


import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;

public class LoginDetails {

    @NotNull(message = "Username cannot be null")
    @Size(min = 6, message = "Username must be at least 6 characters")
    private String userName;

    // Standard getters and setters
    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = …
Run Code Online (Sandbox Code Playgroud)

java spring-boot

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

向量插入同一对象

我试图将一个向量中的几个值插入到相同的向量对象中,但似乎出错了:

#include<iostream>
#include<vector>

using namespace std;

int main()
{
    vector<int> vec;
    for(int i=0;i<9;i++)
    {
        vec.push_back(i+1);
    }

    vec.insert(vec.begin(),vec.begin()+2,vec.end()-4);  //PROBLEM
    vector<int>::iterator ivec=vec.begin();
    while(ivec!=vec.end())
    {
        cout<<*ivec<<' ';
        ++ivec;
    }
    cout<<endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我期待从元件vec.begin()+23至元件vec.end()-46被插入到载体中。但是输出是:

3 1 2 1 2 3 4 5 6 7 8 9
Run Code Online (Sandbox Code Playgroud)

编译器是g++ 4.1.2。我在哪里错了?

c++ iterator vector

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

设置输入流以循环重复返回EOF

我写了这个:

#include<stdio.h>

int main(void)
{
    int input=0;

    while(input=getchar())               //TARGET
        printf("%d\n",input);
}
Run Code Online (Sandbox Code Playgroud)

我有意使用没有循环!=EOF。我想知道在按ctrl + d之后设置了什么位,因为即使没有输入任何输入,它仍会打印-1-表示必须为使getchar()反复返回-1的流设置了一些错误位-我想知道那是什么。以及整个事情的背后是什么。

加上如何再次将流重置为正常状态。

它是Linux上的输入。

c

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

getc 多次评估流

在阅读getc手册页时,我发现:

可以被实现为多次评估流的宏。

那么,getc也可以作为函数来实现 -多次评估流到底意味着什么?

c

3
推荐指数
2
解决办法
199
查看次数

地图计数真的很重要或只是检查存在

在 CPP 入门或其他网站中,我发现count(来自mapSTL)定义的语言非常含糊和误导:

在容器中搜索键等于 k ​​的元素并返回匹配的数量

现在我到目前为止所研究的key是奇异值,映射值也是如此——映射值可以通过赋值来改变。

那么它不只是返回容器是否包含密钥吗?而不是计数?我对这个概念的理解错在哪里?

c++ stl

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

该指针作为const指针

我读到this指针是一个const pointer(听起来很合逻辑),它可以让我们更改其指向的对象,但不能更改其持有的地址。但是当我这样做时:

#include<iostream>

using namespace std;

class A
{
    int val;

    public:
    class A* fun()
    {
        return this;
    }
};

int main()
{
    class A objA;
    class A objB;
    *(objA.fun())=objB;

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

即使返回的指针包含的地址objA,也很容易保留的地址objB。简单变量的类似代码如何失败:

int main()
{
    int i;
    int *const p=&i;

    p=&i;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ oop this

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

全局内存分段错误

第一个文件:

//a.c

const int i = 9;   //Just contains the variable definition
Run Code Online (Sandbox Code Playgroud)

第二个文件:

//b.c

#include<stdio.h>

extern int i;

int main()
{
    int *ptr = &i;

    printf("Before: %d\n",i);

    *ptr = 99;

    printf("After:  %d\n",i);

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

我原本期望在bcconst出现限定符错误/警告extern int i;和只读内存修改错误,但编译却进展顺利。*ptr = 99;

第一个打印语句打印良好,但第二个打印语句出现分段错误

为什么它没有在编译阶段崩溃并出现预期的错误,而是给出分段错误?

注意 - GCC 8.3.0

c

0
推荐指数
2
解决办法
184
查看次数

找不到这些(*)指针表达式的含义

我在某处找到的这些表达是什么意思,我找不到任何有效的搜索结果可通过示例或任何方式来了解它们:

(*)[15]  //how is this defined/used
Run Code Online (Sandbox Code Playgroud)

int (*fun)(int)[1] 
Run Code Online (Sandbox Code Playgroud)

第二个是函数指针,但最后是什么意思[1]

c

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

标签 统计

c ×5

c++ ×3

iterator ×1

java ×1

oop ×1

spring-boot ×1

stl ×1

this ×1

vector ×1