Este é o canal xavecoding (antigo canal Prof. Samuka). A propósito, oi, eu sou o Samuka :)
Atualmente, sou professor no Instituto Federal de São Paulo, campus Campinas, produzindo vídeos para o RU-vid nas horas (raramente) vagas. Sou formado em Ciência da Computação na USP-São Carlos, com mestrado na UNICAMP e doutorado pela UNICAMP e University of Groningen (Holanda). Minha área de atuação é Machine Learning e Ciência de Dados, com ênfase em análise de imagens médicas. Para saber mais sobre meu trabalho, acesse: hisamuka.github.io
Neste canal, trarei sempre treinamentos e tutoriais sobre diversos assuntos ligados à programação, ciência de dados e afins. Fique ligado.
Houve uma confusão na hora da impressão pois tu pegou os resultados finais o compilador já teria colocado o valor do *p1 = 8 p2 = 8 *p2 = *p1 + 3; // 4 4 + 3 = 7 b = b * (*p1); // 3 = 3 x 7 = 21 (*p2)++; //8 logs = *p1 = 8 , *p2 = 8 logs2 = a = 8, b 21 resultado Final 8 8 = *p1 e *p2 8 21 =A e B (EDIT) int a, b, *p1, *p2; a = 4; b = 3; p1 = &a; p2 = p1; *p2 = *p1 + 3; b = b * (*p1); (*p2)++; printf("%d %d ", *p1, *p2); printf("%d %d ", a, b);
tive que fazer algumas alterações, primeiro é que só passei a action como atributo, pois não estava reconhecendo o objeto, então já que é o mesmo objeto para os 2 formulários, optei por deixar estático, já as ações só conseguir chamar dessa forma: na pagina de novo: <div th:replace="~{fragmentos/fragform :: form(@{/professores})}"></div> na pagina de editar: <div th:replace="~{fragmentos/fragform :: form(@{/professores/{professorId}(professorId=${professorId})})}"></div> apenas com essas chamadas funcionou.
para quem teve o erro de: by: org.springframework.expression.spel.SpelEvaluationException criei essa classe: final CaminhoRequestUtil com o método: public static String caminho() { ServletRequestAttributes attrs = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); String caminho = attrs.getRequest().getServletPath(); return caminho; } e passo o caminho da requisição para o mv em cada método do controle: @GetMapping("/professores") public ModelAndView index() { List<Professor> list = professorRepository.findAll(); ModelAndView mv = new ModelAndView("professor/index"); mv.addObject("professores", list); mv.addObject("caminho", CaminhoRequestUtil.caminho()); // Adiciona o caminho da requisição return mv; } Dai eu pego esse caminho na pagina que eu quero: <li class="nav-item"> <a aria-current="page" class="nav-link" href="/" th:classappend="${caminho.equals('/') ? 'active' : ''}">Home</a><!--se o caminho for /, adicionar active na classe--> </li> <li class="nav-item"> <a class="nav-link" href="/professores" th:classappend="${caminho.startsWith('/professores') ? 'active' : ''}" >Professor</a> <!--se o caminho começar com professor, adicionar active na classe--> </li>
Oi, aquilo é o que a função retorna. Ela não é void (retorna nada). Ela retorna um endereço para uma variavel do tipo Livro, por isso que no final da funcao aparece return livro, esse livro armazena o endereço da struct Livro alocada dinamicamente na Heap, ou seja, livro é um ponteiro para a variavel do tipo Livro :) O que ele fez foi facilitar. O jeito que eu inicialmente pensei foi criar o ponteiro primeiro e depois o modificar usando double pointer, mas é mais trabalhoso, mas ficaria assim: void CreateBook(Livro** livro, char name[], int pages, float price){ *livro = calloc(1,sizeof(Livro)); (*livro)->num_paginas = pages (*livro)->preco = price strcpy((*livro)->titulo, name) ai na funcao main para chamar a funcao: int main() { Livro *livro1; CreateBook(&livro1, "Nome Generico Livro", 50, 20.0); } ai eu tenho que passar o endereço do livro1, não o que ele armazena, é a mesma logica para setar o ponteiro como NULL Mas eu gostei mais da versão do professor, muito mais simples.
Excelente conteúdo, estou me realocando profissionalmente e seus vídeos tem me ajudado muito a compreender a manipulação de dados com Python, que sempre achei impossível de aprender. Obrigada pelo conhecimento transmitido
Quero agradecer de coração pelo curso de Python. Foi uma experiência incrível! O conteúdo foi super bem explicado e os exemplos práticos ajudaram muito a entender cada conceito.